package org.example.flea_market_mvc.param;

import java.time.LocalDateTime;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 分类参数类
 * 用于接收前端传入的商品分类相关请求参数
 */
@Data
public class CategoryParam {
    @NotNull(message = "分类名称不能为空")
    @Size(max = 100, message = "分类名称长度不能超过100")
    private String name;           // 分类名称
    private Integer parentId;      // 父分类ID（NULL表示顶级分类）
    @Size(max = 500, message = "分类图标URL长度不能超过500")
    private String icon;           // 分类图标URL
    @Size(max = 500, message = "分类描述长度不能超过500")
    private String description;    // 分类描述
    @NotNull(message = "分类状态不能为空")
    // 这里假设CategoryStatusEnum有合理的范围，根据实际情况修改
    @Min(value = 1, message = "分类状态值无效")
    @Max(value = 5, message = "分类状态值无效")
    private Integer status;        // 分类状态（使用CategoryStatusEnum枚举值）
    @NotNull(message = "分类排序值不能为空")
    @Min(value = 0, message = "分类排序值不能为负数")
    private Integer sortOrder;     // 分类排序值（数值越小越靠前）
    private Integer pageNum; // 当前页码
    private Integer pageSize; // 每页数量
}